// #include <cstring>
// #include<iostream>
// #include <cstring>
// #include<string>
// using namespace  std;
//
// //析构函数 对象死亡做的最后一件事 对象死亡最后一件事 调用析构函数
// // //要点 1. 写法 函数名：~函数名 参数 无参
// // //作用 释放对象中含有指针属性（申请了内存）
// // //机制 不写析构函数 存在一个默认析构函数 （含有指针申请了内存 需要手动写）
// // //调用 对象死亡最后一件事 调用析构函数
//
// class MM {
//     public:
//     MM(const char* str) {
//         int length = strlen(str)+1;
//         m_name = new char[length];
//         strcpy(m_name, str);
//     }
//     void print() {
//         cout << m_name << endl;
//     }
//     ~MM() {
//         delete[] m_name;
//         cout <<"调用析构函数" << endl;
//     }
// protected:
//     char* m_name;
//     private:
// };
//
// int main() {
//
//     {
//         MM object("huahua");
//         object.print();
//     }
//
//
//     return 0;
// }